package org.dromara.hm.domain.bo;

import com.alibaba.excel.annotation.ExcelProperty;
import org.dromara.common.translation.annotation.Translation;
import org.dromara.common.translation.constant.TransConstant;
import org.dromara.hm.domain.HmIssueReceiptRecords;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;

import java.math.BigDecimal;
import java.util.List;

/**
 * 出入库记录业务对象 hm_issue_receipt_records
 *
 * @author zy Hu
 * @date 2024-12-15
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = HmIssueReceiptRecords.class, reverseConvertGenerate = false)
public class HmIssueReceiptRecordsBo extends BaseEntity {

    /**
     * 记录id
     */
    private Long recordId;

    /**
     * 记录商品id
     */
    @NotNull(message = "出库商品不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long recordProductId;

    /**
     * 记录产品名称
     */
    private String recordProductName;

    /**
     * 记录产品类型
     */
    private String recordProductType;

    /**
     * 记录数量
     */
    @NotNull(message = "出库数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal recordNum;

    /**
     * 记录类型
     */
    @NotBlank(message = "出库类型不能为空", groups = { AddGroup.class, EditGroup.class })
    private String recordType;

    /**
     * 记录起始所在仓库
     */
//    @NotBlank(message = "起始所在仓库不能为空", groups = { AddGroup.class, EditGroup.class })
    private String recordStartLocation;

    /**
     * 记录终点所在仓库
     */
//    @NotBlank(message = "终点所在仓库不能为空", groups = { AddGroup.class, EditGroup.class })
    private String recordEndLocation;


    /**
     * 记录起始所在仓库
     */
    private String recordStartLocationName;


    /**
     * 记录终点所在仓库
     */
    private String recordEndLocationName;

    /**
     * 状态
     */
    private String status;

    /**
     * 备注
     */
    private String remark;

    /**
     * 是否为主动增加库存
     */
    private Boolean isActive;

    /**
     * 是否再次提交
     */
    private Boolean isAgain;

    /**
     * 员工福利-员工id集合
     */
    private List<String> employeeIds;

    /**
     * 客户赠品-客户id集合
     */
    private List<String> customerIds;


    /**
     * 赠品人员id集合
     */
    private String userOrCustomerIds;

    /**
     * 可修改次数
     */
    private Integer modifiableTimes;

    /**
     * 外围市场
     */
    private String peripheralMarket;


}
